﻿using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SuYunExpressPackageSystem.Utility
{
    public class QandA
    {
        //   public string Question { get; set; }
        public List<string> Questions { get; set; }  // 存储多个问题

        public string Answer { get; set; }
    }

    public class QandAData
    {
        public List<QandA> QandAs { get; set; } = new List<QandA>();
    }

    public class QandAStorage
    {
        private string filePath = Path.Combine(Directory.GetCurrentDirectory(), "Chat.json");

        // 从 JSON 文件加载问答对
        public QandAData LoadQandAs()
        {
            if (File.Exists(filePath))
            {
                string json = File.ReadAllText(filePath);  // 读取 JSON 文件内容
                return JsonConvert.DeserializeObject<QandAData>(json);  // 反序列化为 QandAData 对象
            }
            return new QandAData();  // 如果文件不存在，返回一个新的空问答数据
        }
    }

    public class ChatBot
    {
        private QandAData qandAData;

        public ChatBot()
        {
            var storage = new QandAStorage();
            qandAData = storage.LoadQandAs();  // 加载问答数据
        }

        // 根据用户输入的问题查找答案
        public string GetAnswer(string question)
        {
            var matchingQandA = qandAData.QandAs
                       .FirstOrDefault(q => q.Questions != null && q.Questions.Any(questionItem => question.Contains(questionItem)));
            if (matchingQandA != null)
            {
                if (string.IsNullOrEmpty(matchingQandA.Answer))
                {
                    return "要不您换个问法试试吧，如果还不能回答我就要更加努力学习了~";
                }
                return matchingQandA.Answer;  // 如果找到匹配，返回对应的答案
            }
            return "要不您换个问法试试吧，如果还不能回答我就要更加努力学习了~";  // 如果没有找到匹配，返回默认回答
        }
    }
}